package com.yesep.learn.design.creational.factory;

import com.yesep.learn.design.common.*;
import com.yesep.learn.design.common.pojo.*;
import com.yesep.learn.design.common.util.*;

/**
 * 简单工厂模式（Simple Factory Pattern）是一种常用的工厂模式变体，它属于创建型设计模式之一。
 * 简单工厂模式的主要目的是为了封装创建对象的过程，使客户端不必关心具体对象的创建过程。简单工厂模式通常由一个工厂类负责创建产品族中的各种产品对象。
 * 主要组成部分
 * 产品接口（Product Interface）：定义了产品对象应具有的方法。
 * 具体产品（Concrete Product）：实现了产品接口的具体产品对象。
 * 工厂类（Factory Class）：负责创建具体的产品对象。
 */
public class AnimalSimpleFactory {
    public static Animal createAnimal(AnimalType animalType) {
        switch (animalType) {
            case Cat:
                return DemoUtil.createCat();
            case Dog:
                return DemoUtil.createDog();
            case Bird:
                return DemoUtil.createBird();
            case Bee:
                return DemoUtil.createBee();
            default:
                return null;
        }
    }
}
